<?php
/**
 * Retorna la cantidad de bytes de una expresion como 7M, 4G u 8K.
 *
 * @param char $var
 * @return numeric
 */
// =================
// MODIFICADO POR IVAN
if($radi==" "){
	$radi=$_GET['radi'];
}
$userfile1_size=$userfile1_size;
$userfile1=$userfile1;
//print_r($_FILES);

//======================
function return_bytes($val)
{	$val = trim($val);
$ultimo = strtolower($val{strlen($val)-1});
switch($ultimo)
{	// El modificador 'G' se encuentra disponible desde PHP 5.1.0
	case 'g':	$val *= 1024;
	case 'm':	$val *= 1024;
	case 'k':	$val *= 1024;
}
return $val;
}

if ((!$codigo && $userfile1_size==0)||($codigo && $userfile1_size>=return_bytes(ini_get('upload_max_filesize')))) {
	die("<table><tr><td>El tama&ntilde;o del archivo no es correcto.</td></tr><tr><td><li>se permiten archivos de ".ini_get('upload_max_filesize')." m&aacute;ximo.</td></tr><tr><td><input type='button' value='cerrar' onclick='opener.regresar();window.close();'></td></tr></table>");

}
//print ("Entra....");///////////////////////////////////////////////////////////////////////////
$fechaHoy = Date("Y-m-d");
if (!$ruta_raiz) $ruta_raiz= ".";
include_once("$ruta_raiz/class_control/anexo.php");
include_once("$ruta_raiz/class_control/anex_tipo.php");

if (!isset($_SESSION['dependencia']))	include "./rec_session.php";

if (!$db)	$db = new ConnectionHandler($ruta_raiz);
//$db->conn->debug=true;
$sqlFechaHoy= $db->conn->OffsetDate(0,$db->conn->sysTimeStamp);
$anex = & new Anexo($db);
$anexTip = & new Anex_tipo($db);

if (!$aplinteg)
$aplinteg='null';
if (!$tpradic)
$tpradic='null';
if(!$cc)
{	error_reporting(7);
session_start();
if($codigo)
$nuevo="no";
else
$nuevo="si";
if ($sololect)
$auxsololect="S";
else
$auxsololect="N";
//$db->conn->BeginTrans();
if($nuevo=="si")
{	$auxnumero=$anex->obtenerMaximoNumeroAnexo($radi);
do
{	$auxnumero+=1;
$codigo=trim($radi).trim(str_pad($auxnumero,5,"0",STR_PAD_LEFT));
}while ($anex->existeAnexo($codigo));
}
else
{	
	$bien = true;
	$auxnumero=substr($codigo,-4);
	$codigo=trim($radi).trim(str_pad($auxnumero,5,"0",STR_PAD_LEFT));
}
if($radicado_salida)
{	$anex_salida = 1;	}
else
{	$anex_salida = 0;	}

$bien = "si";

if ($bien and $tipo)
{	error_reporting(7);
$anexTip->anex_tipo_codigo($tipo);
$ext=$anexTip->get_anex_tipo_ext();
$ext = strtolower($ext);
// MODIFICADO PARA VERSIONES
// Modificar para que nos permita archivos con mas de un punto 
$ext=explode(".", $_FILES['userfile1']['name']);
$ext=$ext[count($ext)-1];

//echo "Numero radicado: $radi<br>";

$auxnumero = str_pad($auxnumero,5,"0",STR_PAD_LEFT);
$archivo=trim($radi."_".$auxnumero.".".$ext);

$archivoconversion=trim("1").trim(trim($radi)."_".trim($auxnumero));
echo "Este es el archivo conversion".$archivoconversion;
}

if(!$radicado_rem)
$radicado_rem=7;
if($userfile1)
$tamano = (filesize($userfile1)/1000);

$directorio="$ruta_raiz/bodega/".substr(trim($archivo),0,4)."/".substr(trim($archivo),4,3)."/docs/";
$ruta=$directorio.trim(strtolower($archivoconversion));
// MODIFICADO PARA EJERCITO BY PATCH
// ABRIL 11 DE 2009
include_once "$ruta_raiz/class_control/version.php";
include_once "$ruta_raiz/class_control/usuario.php";

include("$ruta_raiz/class_control/param_admin.php"); // INCLUYO LA CLASE
$param=Param_admin::getObject($db,'%','VERSION_FUNCTION');
if($param->PARAM_VALOR!=0){
	// DEBEMOS INSERTAR ADEMAS DEL REGISTRO EN LA TABLA ANEXOS UN REGISTRO EN LA TABLA VERSION
	// QUE INDIQUE LA VERSION DEL DOCUMENTO QUE SE ESTA SUBIENDO Y LOS DATOS DE LA MISMA.
	$archivoconversion.="_".strtolower($usua)."_".time().".$ext";
	$ruta.="_".strtolower($usua)."_".time();
	$usuario=Usuario::getObject($db, "%", $usua);
	$version=new Version($db);
	$version->ANEX_CODIGO=$codigo;
	$version->USUA_DOC=$usuario->usua_doc;
	$version->FECHA_UPLOAD=time();
	$version->RUTA_ARCHIVO=$ruta.".".trim($ext);
	$version->RUTA_ARCHIVO=explode("$ruta_raiz/bodega/", $version->RUTA_ARCHIVO);
	$version->RUTA_ARCHIVO=$version->RUTA_ARCHIVO[1];
	if(!$version->DBInsert()){
		echo "Error al crear la version.";
	}
}

$ruta.=".".trim($ext);
// MODIFICADO PARA EJERCITO
// busco el tipo de anexo segun la extensión
$query="SELECT ANEX_TIPO_CODI FROM anexos_tipo WHERE anex_tipo_ext like '$ext%'";
$rs=$db->query($query);
if(!$rs->EOF){
	$tipo=$rs->fields['ANEX_TIPO_CODI'];
}
if ($nuevo=="si")
{
	// $radi = radicado padre
	// $radicado_rem = Codigo del tipo de remitente = sgd_dir_tipo
	// $codigo = ID UNICO DE LA TABLA
	// $tamano = tamano del archivo
	// $auxsololect' = solo lectura?
	// $usua = usuario creador
	// $descr = Descripcion, el asunto
	// $auxnumero = Es codigo del consecutivo del anexo del radicado
	// Esta borrado?
	// $anex_salida = marca con 1 si es un radicado de salida
	include "$ruta_raiz/include/query/queryUpload2.php";
	if ($expIncluidoAnexo) {
		$expAnexo = 	$expIncluidoAnexo;
	}else {
		$expAnexo = null;
	}
	$isql = "insert into anexos
				(sgd_rem_destino,anex_radi_nume,anex_codigo,anex_tipo,anex_tamano   ,anex_solo_lect,anex_creador,anex_desc,anex_numero,anex_nomb_archivo   ,anex_borrado,anex_salida ,sgd_dir_tipo,anex_depe_creador,sgd_tpr_codigo,anex_fech_anex,SGD_APLI_CODI,SGD_TRAD_CODIGO, SGD_EXP_NUMERO)
	           values ($radicado_rem  ,$radi         ,'$codigo'    ,$tipo    ,$tamano     ,'$auxsololect','$usua'     ,'$descr' ,$auxnumero ,'$archivoconversion','N'         ,$anex_salida,$radicado_rem,$dependencia,null,$sqlFechaHoy,        $aplinteg    ,$tpradic, '$expAnexo' ) ";
	$subir_archivo= "yes hhhhhhh";
}
else
{
	
	if($userfile1) $subir_archivo = " anex_nomb_archivo='$archivoconversion',anex_tamano = $tamano,anex_tipo=$tipo, "; 
	else {$subir_archivo="";}
	$isql = "update anexos set $subir_archivo anex_salida=$anex_salida,sgd_rem_destino=$radicado_rem,sgd_dir_tipo=$radicado_rem,anex_desc='$descr', SGD_TRAD_CODIGO = $tpradic, SGD_APLI_CODI = $aplinteg  where anex_codigo='$codigo'";	
}
$version->UpdatePath($radi, $codigo);
//print ("trata doss codigo($codigo)($nuevo)");//////////////////////////////////////////

$bien=$db->query($isql);
//print("Ha efectuado la transaccion($isql)($dependencia)");//////////////////////////////
if ($bien)	//Si actualizo BD correctamente
{
	//print("Si actualizo BD correctamente");
	$respUpdate="OK";
	$bien2 = false;
	//echo "subir archivo".$subir_archivo;
	if ($subir_archivo)
	{
		echo $userfile1."< userfile --- ruta> ".$ruta;
		$bien2=move_uploaded_file($userfile1,$ruta);
		if ($bien2)	//Si intenta anexar archivo y Subio correctamente
		{
			//print("Si actualizo BD correctamente");
			$resp1="OK";
			//$db->conn->CommitTrans();
		}
		else
		{	$resp1="ERROR";			
		//$db->conn->RollbackTrans();
		}		
	}
	else {
		//$db->conn->CommitTrans();
	}
}
else{
	//$db->conn->RollbackTrans();

}
}
include "nuevo_archivo.php";
?>
